package bigbeard.tools.net.api.server;
/**
 * @author bigbeard on 2022-09-29
 */

import bigbeard.tools.net.api.DataArrivalCallback;
import bigbeard.tools.net.api.StateChangeCallback;

public interface IServer {

    /**
     * 启动服务
     *
     * @param port 端口
     * @throws Exception 异常
     */
    void start(int port) throws Exception;

    /**
     * 停止服务
     */
    void stop();

    /**
     * 设置客户端数据到达的回调
     * 此处是同步处理
     *
     * @param callback 回调函数
     */
    void onDataArrival(DataArrivalCallback callback);

    /**
     * 状态变化回调
     *
     * @param callback 回调
     */
    void onStateChange(StateChangeCallback callback);


    /**
     * 客户端连接通知
     *
     * @param callback 回调
     */
    void onClientAccept(ClientAcceptCallback callback);
}
